Individuals now often use an ever-increasing number of computing devices, including desktop computers at multiple locations such as home and work, laptop computers, tablet computers, handheld computers such as smartphones, and other computing devices. Many of these devices are connectable with communication networks such as the Internet. The increasing use of different devices at different times and places has led to an increasing need for users to access their data and digital services from various remote computing devices. At the same time, the advent of “cloud” computing has led users to cause their computing devices to access data and digital services from various remote sources. Cloud computing refers generally to applications and services offered over the Internet. Since these services are often connected, users can share information between multiple systems and with other users. Non-limiting examples of cloud computing include online backup services, social networking services, personal data services, online applications, and hardware services, such as redundant servers, mirrored websites, and Internet-based computer clusters.
Accessing cloud computing from multiple computing devices presents numerous technical issues, including providing automated backup of a user's data from different computing devices, synchronization of data across devices, selective sharing of data with only certain friends and colleagues, and “versioning” of data (i.e., the ability to undelete or roll-back to a previous version of a document or other file no longer on one or more of the user's devices). Moreover, there is an increasing need for any solutions to these issues to be secure and private, so that only the user and the user's specific designees, if any, can access the user's data. Accordingly, it would be preferable that it be technically infeasible for even the solution provider to access the user's information.